package com.blog.webSocket.service;

import com.blog.Utils.Result;
import com.blog.bean.dto.MessageDTO;
import com.blog.bean.vo.MessageDetailVO;
import com.blog.bean.vo.MessageListVO;
import com.blog.webSocket.domain.ChatMessage;
import org.springframework.stereotype.Service;

/**
 * @author 任浩
 * @version 1.0
 */

@Service
public interface ChatService {

    /**
     * 查询聊天双方的关联id
     * @param fromUser
     * @param toUser
     * @return
     */
    String selectAssociation(String fromUser, String toUser);

    /**
     * 是否第一次聊天
     * @param fromUser
     * @param toUser
     * @return
     */
    void isFirstChat(String fromUser, String toUser,Boolean isExists);

    /**
     * 保存聊天记录
     * @param chatMessage
     * @return
     */
    void saveMessage(ChatMessage chatMessage);

    /**
     * 获取当前用户的聊天列表
     * @param fromUser
     * @return
     */
    Result<MessageListVO> getFromUserChatList(String fromUser, MessageDTO messageDTO);

    /**
     * 获取发送者与接收者的最近的聊天记录
     * @param fromUser
     * @param toUser
     * @param currentIndex
     * @return
     */
    Result<MessageDetailVO> getRecentChatRecords(String fromUser, MessageDTO messageDTO);

    /**
     * 更新是否在同一窗口值
     * @param fromUser
     * @param toUser
     */
    void updateWindows(String fromUser, String toUser);


    /**
     * 获取当前用户的未读数
     * @param username
     * @return
     */
    Result getUnreadTotalNumber(String username);

    /**
     *
     * @param username
     */
    void resetWindows(String username);


}
